home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
mac
/
LOGIC Apple II 5.25" Library - ProDOS
/
PRO016.dsk
/
STARTUP.bas
< prev
Wrap
BASIC Source File
|
2012-02-16
|
11KB
|
268 lines
0 REM "FrEdWriter
1 REM "Version 4 12/6/85
2 REM "by Al Rogers, San Diego<CTRL-J><CTRL-J>
3 REM "FreeWriter (c) Paul Lutus 1984
4 REM "ProDOS (c) Apple 1983<CTRL-J><CTRL-J>
10 REM ***********************
11 REM *PROGRAM MAY BE COPIED*
12 REM * FOR EDUCATIONAL USE *
13 REM * BUT MAY NOT BE SOLD *
14 REM *(C) CUE, INC SOFTSWAP*
15 REM * 1986 *
16 REM ***********************<CTRL-J><CTRL-J><CTRL-J><CTRL-J>
24 D$ = CHR$(4): PRINT CHR$(21): DIM MNTH$(12)
25 TEXT : NORMAL : HOME
26 BELL$ = CHR$(7) + CHR$(7)
27 BL$ = " "
28 S1$ = "***************************************"
29 S2$ = "* *"
30 MO$ = "???JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
31 RESTORE : FOR J = 1 TO 12: READ MNTH$(J): NEXT
34 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE
37 DATA JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
43 FOR J = 769 TO 779: READ A: POKE J,A: NEXT : REM SETUP BOOLEAN MASK FOR MACHINE ID BYTE
44 DATA 173,152,191,45,0,3,141,0,3,96,96
46 POKE 768,2: CALL 769:C80 = PEEK(768): REM 0=NO 80 COL CARD,2=YES 80 COL CARD
49 POKE 768,196: CALL 769:APPLE = PEEK(768)
65 ONERR GOTO 9500
70 PRINT D$"BLOAD /FRED/FRED/APPLEIO"
90 GOSUB 100
94 IF APPLE = 0 OR APPLE = 64 THEN C80 = 0: GOSUB 8000: REM NO 80COL CARD
95 GOTO 2000
100 REM <CTRL-J><CTRL-J>READ DATE/TIME<CTRL-J><CTRL-J>
110 MI = PEEK(49042)
120 HH = PEEK(49043)
130 PM = 0: IF HH >11 THEN PM = 1
135 IF HH >12 THEN HH = HH -12
140 IF HH = 0 THEN HH = 12
150 DD = PEEK(49040) - INT( PEEK(49040)/32) *32
155 YY = INT( PEEK(49041)/2)
160 MM = ( PEEK(49041) -YY *2) *8 + INT( PEEK(49040)/32)
170 MM$ = MNTH$(MM)
180 RETURN :<CTRL-J><CTRL-J><CTRL-J>
200 REM
210 HOME
220 PRINT S1$: PRINT S2$
230 PRINT "* SYSTEM DATE AND TIME *"
240 PRINT S2$: PRINT S1$
250 VTAB 10
255 PRINT " THE CURRENT SETTINGS ARE:": PRINT : PRINT
300 REM <CTRL-J><CTRL-J>
305 PRINT " DATE: ";
310 IF DD = 0 THEN PRINT "<NO DATE>": GOTO 325
315 PRINT MM$" "DD", 19";: IF YY <10 THEN PRINT "0";
320 PRINT YY
325 PRINT
330 PRINT " TIME: ";
335 IF HH = 12 AND MI = 0 AND DD = 0 THEN PRINT "<NO TIME>": GOTO 370
340 IF HH <10 THEN PRINT "0";
345 PRINT HH;":";
350 IF MI <10 THEN PRINT "0";
355 PRINT MI;
360 IF PM = 1 THEN PRINT " PM"
365 IF PM = 0 THEN PRINT " AM"
370 RETURN :<CTRL-J><CTRL-J><CTRL-J>
400 REM <CTRL-J><CTRL-J>
420 VTAB 18: HTAB 2: PRINT BL$: VTAB 18: HTAB 4: PRINT "ENTER MONTH:";
430 A$ = " "
450 HTAB 17: PRINT "MMM";: HTAB 17:COUNT = 1:M1$ = ""
460 GET A$: IF ASC(A$) >96 THEN A$ = CHR$( ASC(A$) -32)
465 IF ASC(A$) = 27 THEN RETURN
466 IF ASC(A$) = 13 THEN 910
470 M1$ = M1$ +A$::MM = 4
480 IF M1$ = MID$ (MO$,MM,COUNT) THEN GOTO 510
490 MM = MM +3: IF MM <39 THEN GOTO 480
500 GOTO 450
510 PRINT A$;:COUNT = COUNT +1: IF COUNT <4 THEN GOTO 460
520 MM = (MM -1)/3
530 VTAB 13: HTAB 17: PRINT MNTH$(MM)" ";:HT = PEEK(36) +1: CALL -868
600 REM <CTRL-J><CTRL-J>
610 VTAB 18: HTAB 2: PRINT BL$: VTAB 18: HTAB 6: PRINT "ENTER DAY:";
620 IF ASC(A$) = 27 THEN RETURN
625 HTAB 17: PRINT "DD";: HTAB 17
630 GET A$: IF (A$ <"0") OR (A$ >"3") GOTO 620
640 DD = VAL(A$): PRINT A$;
650 GET A$: IF (A$ <"0") OR (A$ >"9") GOTO 620
655 DD = DD *10 + VAL(A$): PRINT A$;
660 IF DD >31 OR DD <1 GOTO 620
670 VTAB 13: HTAB HT: PRINT DD", 19";:HT = PEEK(36) +1
700 REM <CTRL-J><CTRL-J>
710 VTAB 18: HTAB 2: PRINT BL$: VTAB 18: HTAB 5: PRINT "ENTER YEAR:";
720 IF ASC(A$) = 27 THEN RETURN
730 HTAB 17: PRINT "YY";: HTAB 17
740 GET A$: IF (A$ <"0") OR (A$ >"9") GOTO 720
750 YY = VAL(A$): PRINT A$;
760 GET A$: IF (A$ <"0") OR (A$ >"9") GOTO 720
770 YY = YY *10 + VAL(A$): PRINT A$
780 VTAB 13: HTAB HT: IF YY <10 THEN PRINT "0";
790 PRINT YY
800 REM <CTRL-J><CTRL-J>
810 VTAB 18: HTAB 2: PRINT BL$
820 VTAB 18: PRINT " CORRECT? Y/N ";
830 GET A$
850 IF A$ = "N" OR A$ = "n" THEN 400
855 IF A$ < >"y" AND A$ < >"Y" THEN 830
860 VTAB 18: HTAB 2: PRINT BL$: REM <CTRL-J><CTRL-J><CTRL-J>
900 REM <CTRL-J><CTRL-J>
910 VTAB 18: HTAB 2: PRINT BL$: VTAB 18: HTAB 5: PRINT "ENTER HOUR:";
920 IF ASC(A$) = 27 THEN RETURN
925 HTAB 17: PRINT "HH";: HTAB 17
930 GET A$: IF (A$ <"0") OR (A$ >"1") GOTO 920
940 HH = VAL(A$): PRINT A$;
950 GET A$: IF (A$ <"0") OR (A$ >"9") GOTO 920
960 HH = 10 *HH + VAL(A$): PRINT A$;
970 IF HH >12 OR HH <1 THEN 910
980 VTAB 15: HTAB 17:: IF HH <10 THEN PRINT "0";
990 PRINT HH": "
1000 REM <CTRL-J><CTRL-J>
1010 IF ASC(A$) = 27 THEN RETURN
1020 VTAB 18: HTAB 2: PRINT BL$: VTAB 18: HTAB 3: PRINT "ENTER MINUTE:";
1030 HTAB 17: PRINT "MM";: HTAB 17
1040 GET A$: IF (A$ <"0") OR (A$ >"5") GOTO 1010
1050 MI = VAL(A$): PRINT A$;
1060 GET A$: IF (A$ <"0") OR (A$ >"9") GOTO 1010
1070 MI = 10 *MI + VAL(A$): PRINT A$;
1080 IF MI >59 GOTO 1010
1090 VTAB 15: HTAB 20: IF MI <10 THEN PRINT 0;
1095 PRINT MI
1100 REM <CTRL-J><CTRL-J>
1120 VTAB 18: HTAB 2: PRINT BL$: VTAB 18: HTAB 1: PRINT "ENTER AM OR PM:";
1130 HTAB 17: PRINT "?M";: HTAB 17
1135 IF ASC(A$) = 27 THEN RETURN
1140 GET A$: IF A$ = "a" THEN A$ = "A"
1141 IF A$ = "p" THEN A$ = "P"
1150 IF A$ < >"A" AND A$ < >"P" THEN 1135
1155 PRINT A$;
1160 VTAB 15: HTAB 24: PRINT A$"M"
1170 P$ = A$
1400 REM
1405 VTAB 17: PRINT : PRINT " CORRECT? Y/N ";
1410 IF ASC(A$) = 27 THEN RETURN
1420 GET A$
1430 IF (A$ = "N") OR (A$ = "n") THEN 900
1440 IF (A$ < >"Y") AND (A$ < >"y") THEN 1410
1445 VTAB 18: HTAB 2: PRINT BL$
1450 VTAB 15: HTAB 8: PRINT " "
1470 REM <CTRL-J><CTRL-J>
1490 POKE 49041,YY *2 +(MM >7)
1500 IF MM >7 THEN POKE 49040,(MM -8) *32 +DD
1510 IF MM <8 THEN POKE 49040,MM *32 +DD
1530 REM <CTRL-J><CTRL-J>
1550 IF HH = 12 THEN HH = 0
1560 IF P$ = "P" THEN HH = HH +12
1570 POKE 49043,HH: POKE 49042,MI
1575 GOSUB 100
1580 RETURN :<CTRL-J><CTRL-J><CTRL-J>
2000 REM MAIN
2005 HOME : POKE 216,0
2010 PRINT S1$: PRINT S2$:
2020 PRINT "* FrEdWriter *": PRINT S2$
2025 PRINT "* V.4 December 6, 1985 *": PRINT S2$
2030 PRINT "* MAIN PROGRAM MENU *"
2035 PRINT S2$: PRINT S1$: PRINT
2040 GOSUB 300: REM PRINT DATE & TIME
2050 B$ = "":LMIT$ = "7"
2055 NORMAL : VTAB 14: PRINT
2056 PRINT " 1. Read This First"
2060 PRINT " 2. Start FrEdWriter"
2065 PRINT " 3. Set Date and Time"
2070 PRINT " 4. Format a New Disk"
2080 PRINT " 5. Copy a Disk"
2090 PRINT " 6. View, Delete or Copy Document"
2095 PRINT " 7. Credits"
3020 VTAB 23: HTAB 4: INVERSE : PRINT "TYPE YOUR CHOICE:";: NORMAL : CALL -868
3025 IF B$ > = "1" AND B$ < = LMIT$ THEN A$ = B$:B$ = "": GOTO 3035
3030 GET A$: IF A$ = CHR$(3) THEN TEXT : HOME : END
3031 IF A$ <"1" OR A$ >LMIT$ THEN 3030
3035 VT = VAL(A$)
3040 VTAB 13 +VT: PRINT : INVERSE : PRINT "----->"
3050 VTAB 23: HTAB 4: INVERSE : PRINT " PRESS RETURN TO PROCEED";: NORMAL
3055 IF VT = 2 AND C80 THEN 4200: REM CHOOSE 40/80 COL
3060 GET B$: IF B$ = CHR$(13) OR B$ = A$ THEN 3070
3065 GOTO 2055
3070 A = VAL(A$):A$ = ""
3080 ONERR GOTO 9500
4000 ON A GOTO 4100,4295,4300,4400,4500,4600,4700
4010 GOTO 2000:<CTRL-J><CTRL-J><CTRL-J>
4100 GOSUB 5000
4110 GOTO 2000:<CTRL-J><CTRL-J><CTRL-J>
4200 REM
4230 VTAB 13 +VT -1: PRINT
4235 PRINT BL$: PRINT BL$: PRINT BL$
4240 VTAB 13 +VT -1: CALL -958: PRINT
4245 HTAB 13: PRINT "/ Press ";: INVERSE : PRINT "4";: NORMAL : PRINT " for 40 Columns"
4250 PRINT "FrEdWriter <"
4255 HTAB 13: PRINT "\ Press ";: INVERSE : PRINT "8";: NORMAL : PRINT " for 80 Columns"
4260 POKE 49168,0: WAIT 49152,128: POKE 49168,0:A$ = CHR$( PEEK(49152))
4265 PRINT : PRINT
4270 IF A$ = "4" THEN PRINT " Loading 40 Column FrEdWriter...": GOTO 4295
4275 IF A$ = "8" THEN PRINT " Loading 80 Column FrEdWriter...": GOTO 4295
4280 VTAB 14: CALL -958: GOTO 2050
4295 ONERR GOTO 9500
4296 PRINT D$"- /FRED/FRED/FRED":<CTRL-J><CTRL-J><CTRL-J>
4300 REM
4310 GOSUB 200: GOSUB 400
4320 GOTO 2000:<CTRL-J><CTRL-J><CTRL-J>
4400 REM
4410 HOME : VTAB 10: PRINT
4420 PRINT D$"- /FRED/FRED/HYPER.FORMAT"
4430 GOTO 2000:<CTRL-J><CTRL-J><CTRL-J>
4500 REM
4505 HOME : VTAB 5: PRINT "REMINDER: In order to COPY a disk with"
4510 PRINT "this program, you MUST have two disk"
4515 PRINT "drives and the target disk MUST be"
4520 PRINT "pre-formatted. (You may use the FORMAT"
4525 PRINT "option from the main menu to do that.)"
4530 PRINT : PRINT : PRINT : PRINT
4560 H = 10
4565 INVERSE : HTAB H: PRINT "PRESS RETURN TO COPY": NORMAL
4566 PRINT : HTAB H +1: PRINT "PRESS ESC TO ABORT";
4570 GET A$: IF A$ < > CHR$(13) THEN 4580
4575 PRINT D$"-/FRED/FRED/COPYALL"
4580 GOTO 2000:<CTRL-J><CTRL-J><CTRL-J>
4600 REM
4610 HOME : VTAB 10
4620 PRINT D$"EXEC /FRED/FRED/MENU.EXEC"
4630 END : REM <CTRL-J><CTRL-J><CTRL-J>
4700 GOSUB 6000
4710 GOTO 2000:<CTRL-J><CTRL-J><CTRL-J>
5000 REM
5010 A$ = "HELP": GOTO 6050:<CTRL-J><CTRL-J><CTRL-J>
6000 REM
6010 A$ = "CREDITS"
6050 REM TEXT INPUT ROUTINE
6051 NORMAL
6052 VTAB 22: PRINT : CALL -958: HTAB 8: PRINT "WORKING.....";
6056 IF PEEK(49152) = 155 THEN RETURN
6100 PRINT D$"CLOSE": PRINT D$"OPEN /FRED/FRED/TEXT": PRINT D$"READ /FRED/FRED/TEXT"
6105 ONERR GOTO 9500
6110 CALL 768,B$: IF PEEK(49152) = 155 THEN PRINT D$"CLOSE": POKE 49168,0: RETURN
6111 IF A$ < >B$ THEN 6110
6113 HOME
6115 CALL 768,B$: IF B$ = ".PAGE" THEN GOSUB 7000: GOTO 6115
6120 IF B$ = "END" THEN 6190
6125 PRINT B$
6130 GOTO 6115
6190 PRINT D$"CLOSE": GOSUB 7000: RETURN :<CTRL-J><CTRL-J><CTRL-J>
7000 VTAB 23: HTAB 5: INVERSE : PRINT "RETURN";: NORMAL : PRINT " TO CONTINUE; ";: INVERSE : PRINT "ESC";: NORMAL : PRINT " TO QUIT";
7010 POKE 49168,0: WAIT 49152,128: POKE 49168,0: IF PEEK(49152) = 13 THEN PRINT : HOME : RETURN
7020 IF PEEK(49152) = 27 THEN PRINT D$"CLOSE": POP : RETURN
7030 GOTO 7010:<CTRL-J><CTRL-J><CTRL-J>
8000 HOME
8005 IF PEEK(49152) = 155 THEN RETURN
8010 VTAB 10
8020 PRINT "GETTING APPLE II INFO....."
8030 A$ = "APPLEII"
8040 PRINT : PRINT : PRINT "(PRESS 'ESC' FOR MAIN MENU.)"
8050 GOSUB 6050
8060 RETURN :<CTRL-J><CTRL-J><CTRL-J>
9500 ER = PEEK(222):LN = PEEK(218) +256 * PEEK(219)
9505 DSK = 1: IF PEEK(48944) >127 THEN DSK = 2
9510 PRINT : PRINT : PRINT
9520 IF ER = 6 OR ER = 8 THEN PRINT "CAN'T FIND FILE OR PATHNAME": PRINT : PRINT "PUT FRED DISK IN DRIVE 1": PRINT
9530 IF ER = 5 THEN PRINT "END OF DATA IN LINE "LN
9600 PRINT BELL$;: GET A$
9610 PRINT : POKE 216,0
9620 PRINT D$"CLOSE"
9625 IF LN = 70 THEN 70
9630 GOTO 2000